package com.suray.wcs.service.pojo.rgv.rgv.protocol.message;

import com.suray.basic.wcs.utils.typedef.Bit;
import com.suray.basic.wcs.utils.typedef.Byte;
import com.suray.basic.wcs.utils.typedef.DWord;
import com.suray.wcs.service.pojo.Rgv;
import com.suray.wcs.service.pojo.rgv.rgv.protocol.base.RgvSendMessage;
import com.suray.wcs.service.pojo.rgv.rgv.protocol.util.RgvMessageType;

public class RgvSendLoraConfigMessage extends RgvSendMessage {
    public RgvSendLoraConfigMessage(Rgv rgv, int PID, int TID, int NID, int LFR) {
        super(rgv, "发送修改Lora配置");

        baseDatas.add(new DWord("firstFrame", "报文头帧：02 fd"));
        baseDatas.add(new Byte("deviceId", "小车对应设备号"));
        baseDatas.add(new Byte("life", "心跳、指令、任务共用，没发一帧数据+1,0-255循环，res收到后原数据返回"));
        baseDatas.add(new Bit(4,"frameType", "0. 心跳 1. 整体任务 2. 指令报文  3 调试指令模式  4文件传输模式 5.Lora配置"));
        baseDatas.add(new Bit(4,"version", "版本号"));
        baseDatas.add(new DWord("PID", "网络号"));
        baseDatas.add(new DWord("TID", "透传地址"));
        baseDatas.add(new DWord("NID", "设备ID"));
        baseDatas.add(new DWord("LFR", "载波频率：410~441、470~510、850~950 MHz"));
        baseDatas.add(new DWord("msgLen", "长度"));
        baseDatas.add(new DWord("CRC16", "CRC检验位"));
        baseDatas.add(new DWord("endFrame", "报文尾帧：03 fc"));

        setDefaultValue();
        setValue("frameType", RgvMessageType.RGV_CHANGE_LORA_MESSAGE.getValue());
        setValue("PID", PID);
        setValue("TID", TID);
        setValue("NID", NID);
        setValue("LFR", LFR);
    }

    @Override
    protected void setCrc(int crc) {
        setValue("CRC16", crc);
    }

    @Override
    protected void setLength(int length) {
        setValue("msgLen", length);
    }

    @Override
    public Integer getMessageLife() {
        return getValue("life");
    }

    @Override
    public Integer getMessageType() {
        return getValue("frameType");
    }
}
